﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;

namespace uam_fps_game.Gfx
{
    public struct VisibleModelData
    {
        public ModelObject Model;
        public Matrix WorldMatrix;

        // I can't make them of static size... there will be time for optimizations though
        public int[] LightIndices;
        public float[] LightInfluences;
        public int LightsNum;

        public bool Visible;
    }

    public class VisibleAreaData
    {
        public List<Light> Lights { get; protected set; }
        public List<VisibleModelData> Models { get; protected set; }
        public List<Billboard> Billboards { get; protected set; }
        public List<ParticleSystem> ParticleSystems { get; protected set; }

        public static int MAX_LIGHTS = 16;

        public VisibleAreaData()
        {
            Lights = new List<Light>();
            Models = new List<VisibleModelData>();
            Billboards = new List<Billboard>();
            ParticleSystems = new List<ParticleSystem>();
        }

        public void Clear()
        {
            Lights.Clear();
            Models.Clear();
            Billboards.Clear();
            ParticleSystems.Clear();
        }

    }

}
